#include<iostream>
#define MAXN 500
using namespace std;
int insertAccount(Account a, FILE* fp);
int selectAccount(int number, FILE* fp);
int deleteAccount(int number, FILE* fp);
int updateAccount(int number, Account a, FILE* fp);
//个人账户信息：个人账户编号、账户类型（银行卡，信用卡、支付宝，微信）、账户名或卡号。
typedef struct account{
	int number;//个人账户编号
	int type;//账户类型, 0银行卡，1信用卡，2支付宝，3微信
	char name[20];//账户名
	char card[50];//卡号
}Account;
int main()
{
	int n;
	cout << "请输入要进行的操作‘0’或‘1’或‘2’或‘3’" << endl;
	cin >> n;
	struct account Account [MAXN];
	FILE* fp;
	if (n == 0)
	{
		int s = 0;  //定义一个变量用于接收返回值
		   //定义一个用于指向文件的指针变量
		s=insertAccount( Account, fp);
		cout << s;
	}
	else if (n == 1)
	{
		int number;
		cin >> number;
		selectAccount( number,fp);
	}
	else if (n == 2)
	{
		deleteAccount(int number, FILE * fp);
	}
	else
	{
		updateAccount(int number, Account a, FILE * fp);
	}
}


//将传入的结构体按照 个人账户编号/账户类型/账户名/卡号 的固定格式存入文件fp中
//每条记录占用一行，方便读取时识别，成功插入返回1，失败返回-1
int insertAccount(Account a, FILE *fp){
	if ((fp = fopen("prime.txt", "a")) == NULL) /*打开文件*/
	{
		printf("File open error！\n");
		exit(0);
	}

	scanf("%d %d %s %s", &a.number, &a.type, a.name, a.card);/*输入个人账户编号/账户类型/账户名/卡号 */
	fprintf(fp, "%d %d %s %s\n", &a.number, &a.type, a.name, a.card);/*写入文件*/

	if (NULL != fp)
	{
		return 1; /*成功返回1*/
	}
	else
	{
		return 1;/*不成功返回-1*/
	}
	if (fclose(fp)) /*关闭文件*/
	{
		printf("Can not close the file!\n");
		exit(0);
	}

}

//通过给定的个人账户编号在文件中查询是否有该账户信息，
//如果有返回对应的行数，如果没有返回-1
int selectAccount(int number,FILE *fp){

	char buffer[100];
	char filename[] = "prime.txt";
	char search_string[] = "你要查找的内容";

	if ((fp = fopen("prime.txt", "r")) == NULL) /*打开文件*/
	{
		printf("File open error！\n");
		exit(0);
	}

		while (fgets(buffer, sizeof(buffer), fp)) {
			if (strstr(buffer, search_string)) {
				printf("'%s'\n", buffer);
			}
		}

		fclose(fp);
}

//通过给定的账户编号删除文件中的对应记录，
//成功找到并删除返回1，没有找到返回-1
int deleteAccount(int number,FILE *fp){
	
}

//通过给定的账户编号找到对应记录并修改信息
//成功找到并修改返回1，没有找到返回-1
int updateAccount(int number, Account a, FILE *fp){
	
}

